`:top
`!IronPython`! ist eine Implementierung der Programmiersprache `F33f`_`[Python`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Python_(Programmiersprache)]`_`f für die `F33f`_`[Common Language Infrastructure`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Common_Language_Infrastructure]`_`f (CLI) bzw. damit kompatible `F33f`_`[Laufzeitumgebungen`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Laufzeitumgebung]`_`f wie z. B. `F33f`_`[Mono`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Mono_(Software)]`_`f.
IronPython ist vollständig in `F33f`_`[C#`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=C-Sharp]`_`f geschrieben und wird im Rahmen der `F33f`_`[Apache-Lizenz 2.0`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Apache-Lizenz]`_`f bereitgestellt. IronPython ist je nach Version 2 oder 3 im Sprachumfang kompatibel zu `F33f`_`[CPython`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=CPython]`_`f 2.7 bzw. 3.x, wird aber ohne die Python-Standard-Bibliothek ausgeliefert. Es lassen sich jedoch sämtliche Module einer CPython-Installation laden, solange diese keine kompilierten Bibliotheken benötigen. Zugriff auf `F33f`_`[.NET`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=.Net-Framework]`_`f-Assemblies ist uneingeschränkt möglich.
In IronPython erstellte Programme lassen sich sowohl `F33f`_`[interpretieren`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Interpreter]`_`f als auch `F33f`_`[just-in-time`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Just-in-time-Kompilierung]`_`f in ausführbare Dateien übersetzen. Wie in .NET üblich, kann man mit IronPython auf Bibliotheken zugreifen, die in anderen .NET-Sprachen geschrieben wurden, ebenso wie diese mit Einschränkungen auf in IronPython geschriebene Bibliotheken zugreifen können.
Die IronPython-Umgebung kann als eine Skriptsprache zum Automatisieren einer .NET-Anwendung genutzt werden. Dabei wird die Laufzeitumgebung in die .NET-Anwendung eingebunden. Es können beliebige Objekte an das Skript übergeben werden, was z. B. für Spieleerweiterungen oder `F33f`_`[Plug-in`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Plug-in]`_`f-Entwicklungen sinnvoll ist.
>>Contents
• `F0af`_`[Beispiele`#beispiele]`_`f
• `F0af`_`[Siehe auch`#siehe-auch]`_`f
• `F0af`_`[Einzelnachweise`#einzelnachweise]`_`f
• `F0af`_`[Weblinks`#weblinks]`_`f
-─
>>Beispiele
Eine Ausgabe ohne .NET-Bibliothek:
`B100`F9d9print "Hallo Welt!"`f`b
Das gleiche Beispiel, diesmal mit einer „internen“ .NET-Bibliothek:
`B100`F9d9from System import Console`f`b
`B100`F9d9`f`b
`B100`F9d9Console.WriteLine("Hallo Welt!")`f`b
Und einmal mit Hilfe einer „externen“ .NET-Bibliothek, wobei die `*MyLib.dll`* in einer beliebigen anderen `F33f`_`[.NET-Sprache`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Liste_der_.NET-Sprachen]`_`f (z. B. `F33f`_`[C#`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=C-Sharp]`_`f, `F33f`_`[Visual Basic .NET`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Visual_Basic_.NET]`_`f oder `F33f`_`[C++/CLI`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=C++/CLI]`_`f) geschrieben sein kann:
`B100`F9d9import clr`f`b
`B100`F9d9clr.AddReferenceToFile("MyLib.dll")`f`b
`B100`F9d9from MyLib import Out`f`b
`B100`F9d9`f`b
`B100`F9d9Out.Print("Hallo Welt!")`f`b
IronPython in C# einbinden (z. B. als Taschenrechner):
`B100`F9d9using System;`f`b
`B100`F9d9using IronPython.Hosting;`f`b
`B100`F9d9using Microsoft.Scripting.Hosting;`f`b
`B100`F9d9`f`b
`B100`F9d9public class Eval`f`b
`B100`F9d9{`f`b
`B100`F9d9 public static void Main(string[] args)`f`b
`B100`F9d9 {`f`b
`B100`F9d9 ScriptEngine se = Python.CreateEngine();`f`b
`B100`F9d9 Console.WriteLine(se.Execute(args[0]));`f`b
`B100`F9d9 }`f`b
`B100`F9d9}`f`b
Angenommen das C#-Programm liegt als `*eval.exe`* kompiliert vor und die IronPython-Laufzeitbibliotheken `*IronPython.dll`* und `*IronMath.dll`* (z. B. in demselben Verzeichnis) sind vorhanden, können beliebige Python-Ausdrücke ausgewertet werden:
`B100`F9d9 C:\\> eval.exe 2+2`f`b
`B100`F9d9 4`f`b
`B100`F9d9`f`b
`B100`F9d9 C:\\> eval.exe 2**3`f`b
`B100`F9d9 8`f`b
`B100`F9d9`f`b
`B100`F9d9 C:\\> eval.exe 5%3`f`b
`B100`F9d9 2`f`b
In einem Tutorial, das mit dem IronPython-Paket mitgeliefert wird, ist ein Beispiel zu sehen, wie IronPython als Skriptsprache für C# benutzt werden kann.
>>Siehe auch
• `F33f`_`[Python`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Python_(Programmiersprache)]`_`f, die Programmiersprache Python
• `F33f`_`[Jython`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Jython]`_`f, Java-Implementierung der Programmiersprache Python
• `F33f`_`[PyPy`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=PyPy]`_`f, Implementierung der Programmiersprache Python in Python selbst
• `F33f`_`[Boo`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Boo_(Programmiersprache)]`_`f, Implementierung der Python-ähnlichen Programmiersprache Boo für .NET
>>Einzelnachweise
`:cite-note-df5e2d60b42c3f2b-1`!1.`! Release 3.4.2. 20. Dezember 2024 (abgerufen am 24. Dezember 2024).
`:cite-note-2`!2.`! Release 3.4.0-beta1 auf github.com
>>Weblinks
• Offizielle Website
• IronPython 2 auf `F33f`_`[GitHub`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=GitHub]`_`f
• IronPython 3 auf `F33f`_`[GitHub`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=GitHub]`_`f
• Artikel über IronPython im freiesMagazin 07/2012 (deutsch)
• The Python Standard Library
`c`F0af`_`[↑ Back to top`#top]`_`f`a